Commonly, movie DVDs come with menus allowing for selection of different scenes in the movie. For example, selecting a menu option showing scenes 1-4 can cause display of video portions of each of the scenes. The user can then select one of the video “thumbnails” to cause the movie to begin playing from that point.
It is also possible to create such menus to allow users to select different levels or options in video play. However, devices previously have required still art work to be created and loaded into the device for illustrating the various portions that are accessible to the user through the menu. Such art work takes valuable storage space and, during development and/or revisions, necessitates redrawing of the art work to accurately reflect the state of the developing application. Further improvements are possible.
In an exemplary embodiment, a portable, handheld or other electronic device is programmed so that the runtime application itself is used to automatically generate thumbnail icons or snapshots for inclusion in a selectable menu. Such dynamically created icons or snapshots can for example be used to illustrate corresponding levels or locations that are accessible to the user via menus. More particularly, for a specific level or option selected by the user via the menu, a frame is loaded and a display is generated showing the user the portion of the level selected with dynamically generated icons or thumbnails guiding the user's further selections.
In one example implementation, a snapshot image is automatically generated from the animation database. The system can appear to be simply displaying a static “canned” picture. Unfortunately, in many applications, the complexity of an application for use in a portable handheld device can place a premium on the amount of storage space available. Pre-storing individual pictures for many levels would waste space in the storage device that could be used for other useful functions.
Instead, during development, it is possible to specify a rectangle view into the 3D virtual world that will become a snapshot. A stored XY coordinate designating where to get an image from is relatively compact (e.g., two bytes for each level specifying the top left corner position of the rectangle in tile coordinates, to tell where the snapshot is going to be taken from). The snapshot may in some example implementations comprise a rectangle or other shape smaller than the screen size that can be placed anywhere within the virtual world. The rectangle or other shape specifies the area in the virtual world that the system will draw and display. Because all of the assets needed to display the level are already loaded, generating a display of the snapshot can be very fast. The system can use the stored XY coordinate to capture the image from within the application itself and render it including the background details.
In one example implementation, when the system switches to the next world, it draws a frame of the virtual environment, makes the characters in the environment look like they're moving, and that becomes the image to be displayed in the menu. In one example implementation, the image is only drawn once and then captured and stored e.g., in random access memory. A motion effect can be added so the snapshot appears to have been captured during dynamic operation of the virtual world as opposed to a still frame.
The particular image to be selected for a snapshot can be selected by a designer depending on what they want to show the user. For example, in a particular game level, it may be necessary for a player to get a character carrying a key to a door. The snapshot chosen could be to display an image of the character with the key and the door to give the user a cue that this is what is to be accomplished for that level. An advantage is that because the snapshot is generated at run time, it will represent the image that the application will actually present. Thus, if the artist changes the application, the snapshot will accurately represent it.
In operation of one exemplary embodiment, a portion of the display of the portable device, upon selection of a level by the user, first fades to black and an animation frame corresponding to the selected level is loaded and displayed in that portion of the display. By programming the device to utilize animation frames for automatically generating and displaying corresponding levels or locations that are selectable by accessing the menu, valuable storage space previously needed to store the still art work is freed up.
Moreover, since only a single or small number of animation frames is/are used for each menu level, instead of loading the entire, less RAM is used. Furthermore, the singularly displayed animation frame provides suitable feedback to the user for verifying that the selected level is the one desired by the user.
An example non-limiting handheld portable device and associated display will now be described in detail in connection with the drawings identified below.